Ch 4 Ch21&22 IP Address and IP Layer

utg

CPE 426 Computer Networks

Chapter 4:

Text Chapter 21: IP Address

Text Chapter 22: IP Datagram

TOPICS

„ Chapter 21: IP Address

„ Addressing Scheme/Prefix&Suffix: 21.1-21.8

„ Subnetting and Mask: 21.9-21.13

„ Special IP Address: 21.14

„ Router IP Addressing/Multi-Homed Host: 21.17-21.18

„ BREAK

„ Chapter 22: IP Datagram

„ Header Format: 22.1-22.5

„ Datagram Forwarding: 22.6-22.10

„ Encapsulation: 22.11-22.12

„ MTU and Fragmentation: 22.13-22.17

สรุปบทที่ 20

„

การเชื่อมต่อระหว่าง Network เข้าด้วยก ัน จะใช้อุปกรณ์ชื่อ

Router ซึ่งทํางานใน Layer 3

„

แต่ละ Interface ของ Router จะเชื่อมต่อกับแต่ละ Network และต ้อง Run Network Protocol ตาม Network ที่มันไปเชื่อมต่ออยู่

„

เราจะต้องมี Global Address ที่ไปขึ้นก ับ Address ของแต่ละ

Network ที่จะบ่งบอกหมายเลข Host ในการส่งข้อมูลระหว่าง

สอง Host ที่อยู่คนละ Network

„

Global Address นี้ต ้องสามารถ Mapping กับ Network Address ที่กําหนด

Host ในแต่ละ Network ได ้ (ต ้องมีขบวนการแปลง Address)

„

อย่างไรก็ตาม ในการส่งข ้อมูลภายใน Network ยังคงอ ้างอิงกับ Address ตาม Protocol ของ Network นั้นๆ ซึ่ง Address นี้จะมี Scope เพียงเฉพาะ

ใน Network หนึ่งๆ เท่านั้น

„

เมื่อมีระบบ Address ใหม่ จําเป็นต้องมี Internet Protocol ที่จะ

กําหนด Global Address นี้

„

Protocol นี้ต ้อง Run ที่ทั้ง Host และ Router

สรุปบทที่ 20

„

Internetworking Protocol ที่นิยมที่สุดคือ IP หรือ Internet Protocol (ใช้ The Internet)

„

Global Address ที่กําหนดหมายเลข Host คือ IP Address

„

IP อยู่ใน Layer 3 และต้อง Run ที่ท ั้ง Host และ Router

„

การส่งข ้อมูลให ้ถึง Host ที่หมาย จะกําหนดด ้วย IP Address ปลายทาง

แม ้ว่าจะมีการส่งข ้อมูลผ่านหลาย NW เราไม่จําเป็นต ้องรู ้ NW Address ของ

แต่ละ Network ที่ผ่าน เพราะจะมีขบวนการ Mapping โดยอัตโนมัติ (ARP)

„

เรามองเห็นแค่ IP Layer ส่วน Layer ล่างจะ Transparent กับ User เสมือน

เราเชื่อมต่อกับ Internet อย่างเดียว

„

เป็น Virtual Network

„

ในการส่งข้อมูลจะแบ่งเป็นสอง Step

„

1. ส่ง Packet ไปให ้ถึง NW ปลายทางก่อน โดย Router จะดูจากส่วน

Network ID ของ IP Address

„

2. เมื่อ Packet ไปถึง Network ปลายทาง จะเป็นหน ้าที่ของ Network Protocol นั้นๆทําการส่งไปให ้ถึง Host ใน Network นั้น ในกรณีนี้ ส่วนของ

Host ID ใน IP Address จะถูก Map เข ้ากับระบบ Address ของ Network นั้น (ใน LAN จะ MAP กับ MAC Address, โดยใช ้ ARP)

„

Network Protocol ใน Network นั้นๆจะรับผิดชอบส่ง Packet จาก Router ไป

ยัง Host ปลายทาง

Chapter 21: IP Addressing

„ IP Address เป็นต ัวกําหนด End System

(Host) ตลอดท ั้งเครือข่าย Internet

„ ดังนั้นมันจะต ้องเป็น Global Address ขณะที่ MAC

Address จะหมดอายุเมื่อออกจาก LAN

„ เป็นแค่ Local Address ใน LAN

„ เครื่องสองเครื่องในเครือข่าย จะมีหมายเลขเดียวกัน

ไม่ได ้

„ เครื่องที่ต่อใน LAN ออก Internet จะมีทั้ง MAC Address และ

IP Address ที่ Match กัน

„ Protocol ARP จะกล่าวในบทที่ 23

„ ปัจจุบ ันใช้ตามมาตรฐานของ IPv4

„ Address ขนาด 32 บิต

„ เรียก IP Address, Internet Address หรือ Internet Protocol Address

„ กําหนดหมายเลขเครื่องได ้โดยไม่เกี่ยวข ้องกับ MAC

Address

Ch. 21: 21.4 IP Address

Hierarchy

„ แต่ละ IP Address ขนาด 32 บ ิต จะถูก

แบ่งออกเป็นสองส่วน

„ ส่วนต ้น เรียก Prefix เป็นตัวกําหนดหมายเลข

Network (Network ID)

„ ส่วนที่เหลือ เรียก Suffix เป็นตัวกําหนด

หมายเลข Host ใน Network นั้นๆ

„ หมายเลข Host ใน Network เดียวกันจะซํ้ากันไม่ได ้

„ หมายเลข Host ที่อยู่คนละ Network สามารถซํ้ากัน

ได ้ เพราะส่วน Prefix (Net ID) นั้นไม่เหมือนกัน

32 Bits

Prefix

Suffix

Ch. 21: 21.5 Original Classful IP

Addressing

Ch. 21: 21.6 Dotted Decimal

Notation

„ ใน 32 บ ิต IP Address จะถูกแบ่งเป็นสี่

ส่วน ส่วนละ 8 บิต

„ แต่ละส่วนจะเขียนเป็นเลขฐาน 10 มีค่าได ้

ระหว่าง 0 – 255

„ แต่ละส่วนจะเขียนต่อกัน ขั้นด ้วย “จุด”

„ เรียก Dotted Decimal Notation

„ Address ตํ่าสุดคือ 0.0.0.0

„ Address สูงสุดคือ 255.255.255.255

„ แต่ละ Class สามารถสังเกตุได ้จาก Octet แรก

ของ IP Address

Ch. 21: 21.7 Division of Address

Space

„ ส ังเกตุว่า แม้ว่า Class A จะมีแค่ 128

Network แต่ม ันประกอบด้วยครึ่งหนึ่ง

ของ Address Space ท ั้งหมด

Ch. 21: 21.8 Authority for

Address

„ องค ์กรที่ดูแลจ ัดการเรื่อง IP Address

คือ ICANN

„ Internet Corporation for Assigned Names

and Numbers

„ ปกต ิ ICANN จะกําหนดให้ Registrar

เป็นผู้จ ัดสรรในแต่ละภูมิภาคอีกทีหนึ่ง

„ Registrar จะจ ัดสรร Block ของ IP

Address ให้แก่ ISP แต่ละราย

„ ผู ้ใช ้งานจะได ้รับ IP Address จาก ISP อีกที

Summary of IP Classful

octet 1

octet 2

octet 3

octet 4

Range of addresses

Network ID

Host ID

1.0.0.0 to

Class A:

1 to 127

0 to 255

0 to 255

0 to 255

127.255.255.255

Network ID

Host ID

Class B:

128 to 191

0 to 255

0 to 255

0 to 255

128.0.0.0 to

191.255.255.255

Network ID

Host ID

Class C:

192.0.0.0 to

192 to 223

0 to 255

0 to 255

1 to 254

223.255.255.255

Multicast address

Class D (multicast):

224 to 239

0 to 255

0 to 255

1 to 254

224.0.0.0 to

239.255.255.255

Class E (reserved):

240 to 255

0 to 255

0 to 255

1 to 254

240.0.0.0 to

255.255.255.255

Ch. 21: 21.9 Subnet and

Classless Addressing

„

การแบ่ง Class ทําให้การใช้งาน IP Address ขาด

ประสิทธิภาพ

„

เรามีคอมพิวเตอร์ 15 เครื่อง ดังนั้นต ้องใช ้ Class C ซึ่งรองรับได ้

256 (-2) เครื่อง แต่ใช ้จริงแค่ 15 ที่เหลือ คนอื่นใช ้ไม่ได ้ เพราะเป็น

คนละ Network กับเรา

„

ปัจจุบ ัน IP Class A และ B ได้ถูกใช้งานหมดแล้ว

„

เหลือ Class C จํานวนเล็กน้อย และขอได้ยากมาก

„

เพื่อแก้ปัญหา IP Address ไม่พอใช้ มีสองวิธีที่คิดขึ้น

และคล้ายก ัน คือ

„

Subnet Addressing : การแบ่ง Network เป็น NW ย่อย

„

Classless Addressing : การแบ่ง NW โดยกําหนด Prefix เอง

„

กล่าวคือ ไม่มีการกําหนด Class แต่สามารถกําหนดบิตของ Prefix และ Suffix ได ้ตามต ้องการ

Ch. 21: 21.9 Subnet and

Classless Addressing

„ ต ัวอย่าง Class C เด ิม (24 Bit Prefix)

แบ่งเป็นสี่ส่วน โดยเพิ่ม Prefix อีก 2 บิต

(Suffix ถูกลดลง 2 บิต เหลือ 6 บิต)

Ch. 21: 21.10 Address Masks

„

การที่เรากําหนด Prefix เองทําให้ IP Address ไม่มี

Class อีกต่อไป

„

เรียก Classless

„

ในการนี้ เราจะต้องบ่งบอกเองว่าส่วนไหนเป็น Prefix

และส่วนใหนเป็น Suffix

„

กําหนดจาก ค่า 32 Bit เช่นก ันเรียก Address Mask

(เมื่อก่อนเรียก Subnet Mask)

„

ส่วนต ้น ที่กําหนด Prefix ให ้เป็นบิต ‘1’

„

ต ้องเขียนติดต่อกัน

„

ส่วนที่เหลือเป็น Bit ‘0’ กําหนด Suffix เขียนติดกัน

„

การหา Network ID(Prefix) ทําได้โดยทํา Bitwise

AND ระหว่าง IP Address ก ับ Mask

„

N == (D & M)

Ch. 21: 21.10 Address Masks

Example:

„

Consider the following 32-bit network prefix:

10000000 00001010 00000000 00000000 = 128.10.0.0

„

Consider a 32-bit mask:

11111111 11111111 00000000 00000000 = 255.255.0.0

„

Consider a 32-bit destination address, which has a

10000000 00001010 00000010 00000011 = 128.10.2.3

„

A logical and between the destination address and the address mask extracts the high-order 16-bits

10000000 00001010 00000000 00000000 = 128.10.0.0

Ch. 21: 21.11 CIDR Notations

„ ปกต ิ Address Mask เขียนในล ักษณะ Dotted

Decimal Format เช่นเดียวก ันก ับ IP

Address

„ เช่น 1111 1111 1111 1111 1111 1111 1100 0000

จะเขียนเป็น 255.255.255.192

„ เพื่อให้ง่ายในการอ่าน แทนที่เราจะเขียน IP

Address คู่ก ับ Address Mask เราเขียน IP

Address ตามด้วยจํานวนบิตที่กําหนด Suffix

ในรูป

„ ddd.ddd.ddd.ddd / m

„ เช่น 192.5.48.69 / 26 มีความหมายเดียวกับ IP

Address 192.5.48.69 และ Mask 255.255.255.192

„ เรียก CIDR Notation

„ Classless Inter-Domain Routing

CIDR

Ch. 21: 21.12 CIDR Example

„ สมมุต ิ ISP มี Block ของ IP Address

„ 128.211.0.0 / 16

„ ถ้า ISP มีลูกค้าสองราย แต่ละรายต้องการ 12

และ 9 IP Address ซึ่ง ISP สามารถกําหนด

Prefix ให้แก่ลูกค้าท ั้งสองด ังนี้

„ 128.211.0.16 / 28

„ 128.211.0.32 /28

„ แม้ว่าลูกค้าท ั้งสอง จะใช้ขนาดของ Mask

เท่าก ัน แต่ Prefix จะต่างก ันคือ

„ 10000000 11010011 00000000 0001 0000

„ 10000000 11010011 00000000 0010 0000

Ch. 21: 21.13 CIDR Host Address

„ ในแต่ละละ Block ของ CIDR เรา

สามารถกําหนด Host Address จากส่วน

Suffix

„ จํานวน Host ในแต่ละ Block เท่ากับ 2suffix bit -2

„ เหตุผลที่ต ้องลบสอง คือ Address แรก และ

Address สุดท ้าย ของ Host จะไม่ใช ้

„ Address แรก คือเมื่อ Bit ของ Host เป็นศูนย์ทั้งหมด

เนื่องจาก IP Address ของ Host นี้จะเหมือนกับ

Network Address และป้องกันปัญหาใน Berkeley

Broadcast Address Form

„ Address สุดท ้าย คือเมื่อ Bit ของ Host เป็นหนึ่ง

ทั้งหมด จะถูกกันไว ้เป็น Address พิเศษสําหรับ

Broadcast ใน Network นั้น

Ch. 21: 21.13 CIDR Host Address

„ Example: 28 Bit Prefix

Ch. 21: 21.14 Special IP Address

„ Network Address

„ Address ที่ประกอบด ้วย Host Bit เป็น ‘0’ ทั้งหมดจะถูก

Reserved ไว ้สําหรับ Network Address

„ 128.211.0.16/28 หมายถึง Network ไม่ใช่ IP Address

„ Directed Broadcast Address

„ Address ที่ประกอบด ้วย Host Bit เป็น ‘1’ ทั้งหมดจะถูก

Reserved ไว ้สําหรับส่ง Packet ไปให ้กับทุก Host ใน

Physical Network นั้น

„ เมื่อ Packet นี้ถูกส่ง จะส่งไป Copy เดียว ผ่าน Internet จนกระทั่งถึง Network ปลายทาง จากนั้น Packet จะถูกส่ง

ต่อไปให ้ทุกๆ Host ใน NW ปลายทาง

Ch. 21: 21.14 Special IP Address

„ Limited Broadcast Address

„ เป็นการ Broadcast กับเครื่องที่ต่อเฉพาะกับ Link นั้น จะ

ใช ้ในตอนที่ระบบ Start และยังไม่มี IP Address เป็น

ของตัวเอง

„ Address คือ 255.255.255.255 (All ‘1’)

„ IP จะ Broadcast Packet ที่ใช ้ Address นี้ไปตลอดทั่ว

Local Network

„ This Computer Address

„ กําหนดโดย Address ที่เป็น ‘0’ ทั้งหมด

„ คือ 0.0.0.0

„ ใช ้ในการกําหนด Source IP Address สําหรับเครื่องที่ยัง

ไม่รู ้ IP Address ของตนเอง

„ ใช ้ใน Protocol DHCP เมื่อคอมพิวเตอร์เริ่ม Boot และขอ IP

Address จาก DHCP Server

Ch. 21: 21.14 Special IP Address

„ Loopback Address

„ ใช ้สําหรับทดสอบการสื่อสารของสอง Network

Application บนเครื่องเดียวกัน โดยไม่ต ้องผ่าน

Network

„ IP Reserver Network Prefix 127/8 สําหรับใช ้

กับ Loopback

„ ปกติจะใช ้ Host number 1: 127.0.0.1

„ Packet Loopback จะไม่ออกมานอกเครื่อง

Ch. 21: 21.15 Summary Special

IP Address

Ch. 21: 21.16 The Berkeley

Broadcast Address Form

„ ในการพ ัฒนา TCP/IP บน UNIX ยุคแรกๆ

โดย University of California at Berkeley

(BSD UNIX) ได้ใช้ Directed Broadcast

Address ที่ไม่ได้เป็นมาตรฐาน

„ กล่าวคือใช ้ Host Bit ‘0’ ทั้งหมด กําหนดเป็น Directed Broadcast Address

„ รู ้จักกันในนาม ‘Berkeley Broadcast’

„ ยังมีอุปกรณ์รุ่นเก่าที่ยังใช ้งานอยู่ที่ใช ้ Broadcast Address นี้

„ Network Manager จะต ้องระวัง และเลือกใช ้

Ch. 21: 21.17 Router and IP

Address

„ นอกเหนือจากการกําหนด IP Address

ให้แก่ Host แล้ว อุปกรณ์ Router ต้อง

กําหนด IP Address ด้วย

„ Router ต่อเข ้ากับหลาย Physical Network

„ แต่ละ Interface ของ Router ต ้องใช ้ Prefix

ตาม Network ที่มาต่อ

„ แต่ละ Interface ของ Router จะใช ้ Host ID

(Suffix) ที่ไม่ซํ้ากับ Network ที่มาต่อนั้น

Ch. 21: 21.17 Router and IP

Address

Ch. 21: 21.18 Multi-Homed Host

„ คอมพ ิวเตอร ์ที่มีมากกว่าหนึ่ง Network Card

(LAN Card หรือ Network Card อื่น)

สามารถเชื่อมต่อได้มากกว่าหนึ่ง Network

และสามารถมี IP Address ได้มากกว่าหนึ่ง

เบอร์

„ โดยแต่ละเบอร์มี Prefix ตาม Network ที่มาต่อ

„ เรียก Multi-Homed

„ ปกติจะใช ้ในการเพิ่มความเชื่อถือได ้ของอุปกรณ์ในกรณี

ที่ Network หนึ่ง Down

„ ยังเป็นการเพิ่มประส ิทธิภาพด ้วย

„ สามารถใช ้งานเป็น Gateway หรือทํา Firewall หรือทํา

เป็น Router ได ้ ถ ้ามี Software ที่ถูกต ้อง

Ch. 21: 21.18 Multi-Homed Host

152.47.0.0/16

152.47.204.5

200.123.234.1

200.123.234.0/24

TOPICS

„ Chapter 22: IP Datagram

„ Header Format: 22.1-22.5

„ Datagram Forwarding: 22.6-22.10

„ Encapsulation: 22.11-22.12

„ MTU and Fragmentation: 22.13-22.17

Chapter 22: IP Datagram

„

จุดประสงค์ของ Internetworking เพื่อที่จะให้ Program ที่ Run อยู่บนคอมพิวเตอร์หนึ่ง สามารถส่ง Packet สื่อสารได้ก ับอีก

Program หนึ่งที่อยู่ต่างคอมพิวเตอร์ก ัน

„

การอกแบบ Internetworking ที่ดี การสื่อสารด ังกล่าวจะเป็น

Transparent และไม่ต้องคํานึงถึง Hardware เชื่อมต่อที่

แตกต่างก ัน

„

Internet ควรจะให้ Service แบบใดแก่ Application Program เหล่านี้ : Connectionless หรือ Connection-Oriented

„

ผู้ออกแบบ TCP/IP ตกลงเลือก Service ท ั้งสองประเภท

„

Connectionless: User Datagram Protocol(UDP)

„

Connection Oriented: Transport Control Protocol(TCP)

„

อย่างไรก็ตาม วิธีการส่ง Packet จะใช้แบบ Connectionless หรือ Datagram โดยถ้าผู้ใช้ต้องการความเชื่อถือในการส่งข้อมูล

สามารถผนวกวิธีการของ Connection Oriented(TCP) เข้าก ับ

การส่ง Packet ที่เป็นแบบ Datagram (IP) ได้

Ch22: 22.3 Virtual Packet

„

การส่งข้อมูลที่เป็นแบบ Datagram หรือ Connectionless ภายใน Network เป็นการปร ับปรุงมาจาก Packet Switching Network

„

โดยผู ้ส่งสามารถส่งแต่ละ Packet ผ่าน Internet และแต่ละ Packet จะ

เดินทางโดยไม่ขึ้นต่อกัน

„

ตัวการที่สําคัญในการส่งผ่าน Packet คือ Router โดยที่ Router จะดู

Address ปลายทางและตัดสินใจว่าควรจะส่ง Packet ให ้ Router ตัวถัดไป

ตัวใด

„

Router รับผิดชอบเพียงเท่านี้ คือส่ง Packet ให ้ Router ตัวถัดไป (หรือส่งไปให ้

Destination ถ ้าเป็น Router ตัวสุดท ้ายของเส ้นทาง)

„

เนื่องจาก Router อาจจะเชื่อมต่อ Network ที่ต่างกันและ Address ของแต่

ละ Network ต่างกัน ซึ่ง Router ไม่สามารถที่จะเปลี่ยน Address Format ได ้ทุกครั้งที่ผ่านแต่ละ Network เพราะผู ้รับปลายทางอาจจะใช ้ Address Format ที่ต่างออกไปอีก

„

ในการนี้ Internet จะต ้องออกแบบ Packet Format ใหม่ และใช ้ Address ที่

เป็นหนึ่งเดียว (คือ IP Address) กล่าวคือ Internet Protocol จะต ้องวางบน

Network Layer ของแต่ละ Network อีกทีหนึ่ง

„

ผลลัพธ์คือ Universal Virtual Packet ที่สามารถส่งผ่าน Network อะไรก็ได ้

Ch22: 22.4 IP Datagram

„ ใน TCP/IP จะใช้คําว่า IP Datagram ในการ

อ้างถึง Packet ของ Internet ซึ่ง

ประกอบด้วย Payload ที่ได้มาจาก Layer บน

และส่วนห ัวที่เรียก IP Header

„ ขนาดของ Payload ไม่ได้กําหนดตายต ัว

ขึ้นอยู่ก ับ Application ที่ใช้

„ IPv4 สามารถมี Payload ได ้ตั้งแต่ 1 Octet จนถึงสูงสุด

64K Octet(65535: รวมส่วนหัวด ้วย)

„ ขนาดของ Header ปกติจะคงที่คือ 20 Octet แต่

สามารถขยายได ้ (ส่วนของ Option)

Ch22: 22.5 IP Datagram Header

Format (IPv4)

„ VERS. กําหนด Version ในที่นี้คือ 0100 B

„ H.LEN. กําหนดความยาวของ Header มี

หน่วยเป็น 32 Bit Word ถ้าไม่มี Option ค่านี้

คือ 0101 B

Ch22: 22.5 IP Datagram Header

Format (IPv4)

„ SERVICE TYPE. กําหนด Class ของ Service

ปกติไม่ใช้ (จะพูดในเรื่อง QoS)

„ TOTAL LENGTH. ความยาวเป็น Byte รวมท ั้ง

ส่วนห ัว

Ch22: 22.5 IP Datagram Header

Format (IPv4)

„

IDENTIFICATION. กําหนด Sequence Number ใช้

ในกรณีที่มีการ Fragmentation

„

FLAGS. เป็นต ัวกําหนดว่าจะยอมให้ทํา Fragment ได้

หรือไม่ และกําหนดFragment สุดท้าย

Ch22: 22.5 IP Datagram Header

Format (IPv4)

„

FRAGMENT OFFSET. ค่าจะถูกคูณด้วย 8 เพื่อบ่งบ่งตําแหน่ง

ของ Datagramนี้ใน Datagram ก่อน Fragment

„

TIME TO LIVE. กําหนดโดยผู้ส่ง โดยจะเป็นต ัวกําจ ัด Packet ใน

กรณีที่มี Loop ซึ่งค่านี้จะถูกลดลงหนึ่งทุกคร ั้งที่ผ่าน Router เมื่อ

ค่านี้เป็นศูนย์ Datagram นี้จะถูกโยนทิ้ง และมีการส่ง Error Message กล ับไปย ังผู้ส่ง

Ch22: 22.5 IP Datagram Header

Format (IPv4)

„ TYPE. กําหนดชนิด(Protocol) ของ Payload

ที่อยู่ข้างใน (ที่อยู่ Layer บนถ ัดไป)

„ HEADER CHECKSUM. ผลบวกของ 16 Bit

Word และ Complement

Ch22: 22.5 IP Datagram Header

Format (IPv4)

„

SOURCE & DESTINATION IP ADDRESS. กําหนดเครื่องต้น

ทางและปลายทาง ไม่ใช่ Address ของ Router

„

IP OPTIONS. ใช้ในการควบคุมการทํา Routing ปกติจะไม่ใช้

„

PADDING. ด้วยศูนย์เพื่อให้ครบ 32 Bit Word

Ch22: 22.6 IP Datagram

Forwarding

„

IP Router จะใช้ Forwarding Table (Routing

Table) ซึ่งสามารถจะ Update ได้เป็นระยะ

„

จะเป็นลักษณะของ Next-hop Forwarding

Router 2

Ch22: 22.7 Network Prefix

Extraction

„

จากที่กล่าวแล้ว Router จะดูแค่ส่วน Prefix ของ IP Address(NW

ID) จากน ั้นจะเปรียบเทียบก ับตาราง Routing Table เพื่อหา

เส้นทางในการส่งข้อมูลต่อไป ด ังนี้

„

ในแต่ละแถวของตาราง Routing Table ตัว Router จะนํา Mask จากแถวนั้น

มาทําการ Bitwise AND กับ IP Address ปลายทางที่ได ้จากส่วน Header ของ IP Datagram และเปรียบเทียบกับค่าในตาราง ถ ้าค่า Prefix ที่ได ้ตรงกัน

กับค่าจากแถวนั้นในตาราง ถือว่า Match และข ้อมูลจะถูกส่งไปในทิศทางนั้น

„

ยกตัวอย่าง มี Datagram ต ้องการส่งไปที่ 192.4.10.3 ส่งมาที่ Router R2

„

ในแถวแรกของตาราง เมื่อทําการ AND เราได ้ 255.0.0.0 & 192.4.10.3 = 192.0.0.0

ซึ่งไม่ตรงกับ 30.0.0.0

„

แถวที่สองจะได ้ 192.0.0.0 เช่นกันและไม่ตรงกับ 40.0.0.0

„

แถวที่สามจะได ้ 192.4.0.0 และไม่ตรงกับ 128.1.0.0

„

แถวที่สี่จะได ้ 192.4.10.0 ซึ่งตรงหรือ Match ดังนั้นข ้อมูลจุถูกส่งออกไปที่ 128.1.0.9

คือ IP Address ของ Interface ของ R3 ที่ต่อกัน เรียกว่า Next Hop Address

„

การส่งให ้ Router ตัวถัดไปนั้น จะไม่มีการเปลี่ยนแปลง IP Address ของ

Datagram แต่จะส่งโดยใช ้ Local Network Address แทน เนื่องจาก Interface ของ Router ที่ต่อตัวถัดไป จะอยู่ใน NW เดียวกันกับ Router ตัวที่ส่ง

„

ถ ้าเป็น Direct Connect ตัว Router สามารถส่งข ้อมูลให ้กับ Host ได ้โดยตรง ไม่

ต ้องส่งให ้กับ Router ตัวถัดไป

Ch22: 22.8 Longest Prefix Match

„

ในทางปฎิบ ัติ ตาราง Routing Table อาจจะมีขนาด

ใหญ่ และ Routing Algorithm ค่อนข้างสล ับซับซ้อน

การส่งผ่านข้อมูลจะมีข้อกําหนดเพิ่มเติมที่สําค ัญด ังนี้

„

ถ ้าไม่มี Prefix ใด Match เลยในตาราง ข ้อมูลจะส่งไม่ได ้ ดังนั้นแถว

สุดท ้ายมักจะกําหนด ‘Default Route’ โดยใช ้ Address 0.0.0.0

และ Mask เป็น 0.0.0.0 (Always Match)

„

ผู ้ส่งสามารถกําหนด Route เองได ้ โดยกําหนดเส ้นทางส่งข ้อมูล

ผ่าน Interface ต่างๆในส่วน Option ของ Header

„

ในกรณีที่มีการ Match Prefix มากกว่าหนึ่งอัน ตัว Router จะส่ง

ข ้อมูลในทิศทางที่มีการ Match Prefix ที่ยาวที่สุด

„

ดังนั้นในตาราง Routing Table, Software จะทําการเรียงตารางใหม่

เริ่มจากแถวที่มี Prefix มากที่สุดก่อน

„

เช่นในตารางมีสอง Prefix คือ 128.10.0.0/16 และ 128.10.2.0/24

ถ ้ามี Datagram ที่ต ้องการส่งไปที่ 128.10.2.3 เข ้ามา มันจะถูกส่งไป

ตามแถวที่กําหนดจาก 128.10.2.0/24 เพราะมีการ Match ยาวกว่า

Longest Prefix Match

192.168.7.1

172.35.147.2

192.168.7.0/24

172.35.0.0/16

192.168.7.123

Destination

Mask

Next Hop

172.35.74.98

40.30.0.0

255.255.0.0

172.35.147.2

212.210.17.65

128.0.0.0

255.0.0.0

192.168.7.1

195.89.36.0

255.255.255.0

192.168.7.1

128.10.0.0

255.255.0.0

172.35.147.2

212.210.17.64/26

212.210.17.64 255.255.255.192

Directed

172.35.0.0

255.255.0.0

Directed

192.168.7.0

255.255.255.0

Directed

212.210.17.120

128.10.2.0

255.255.255.0

192.168.7.1

0.0.0.0

0.0.0.0

212.210.17.120

Ch22: 22.10 Best Effort Delivery

„

การส่ง Datagram ใน IP Network จะเป็นล ักษณะ

Best-Effort Delivery คือส่งเท่าที่จะสามารถส่งได้

อย่างไรก็ตามสิ่งต่างๆเหล่านี้สามารถเกิดขึ้นได้

„

Datagram Duplication

„

Delayed หรือ Out-of-Order Delivery

„

Data Corruption

„

Datagram Loss

„

กล่าวคือ จะมี Error เกิดขึ้นได้เสมอในการส่งข้อมูล

ผ่าน Internet

„

ในการนี้ มาตรฐาน TCP/IP ได้ออกแบบ Protocol อีก

Layer หนึ่งเพื่อที่จะมาจ ัดการก ับเรื่องเหล่านี้ (TCP)

„

ขึ้นอยู่กับผู ้ใช ้งาน จะเลือกแค่ Best-Effort Delivery หรือต ้องการ

Protocol เสริมที่จะช่วยจัดการกับ Error

„

UDP/IP หรือ TCP/IP

Ch22: 22.11 IP Encapsulation

„

ในการส่ง Datagram ผ่านแต่ละ Network จําเป็นที่จะต้องบรรจุ

Datagram ลงใน Network Protocol ที่กําล ังผ่าน

„

เรียกว่าการทํา Encapsulation

„

เมื่อ Encapsulated Datagram ผ่านจาก Network หนึ่งไปย ังอีก

Network หนึ่ง (ผ่าน Router) ม ันจะถูก Decapsulated และถูก

Encapsulate ใหม่ตาม Protocol ของ Network ถ ัดไป

„

การ Decapsulate นั้น จะต ้องรู ้ว่ามันเป็น IP Datagram Encapsulate มิฉะนั้นแล ้ว

การทํางานจะผิดพลาด เนื่องจากแต่ละ Network อาจจะมีการ Encapsulate หลาย

Protocol

„

ดังนั้นที่ส่วนหัวของ Network Protocol ที่ทําการ Encapsulate จะต ้องมี Code กํากับ

บอกชนิดของ Payload

„

ใน Ethernet Frame ถ ้าเป็น IP Datagram บรรจุอยู่ใน MAC Frame จะใช ้ Ethertype 0x0800

„

นอกจากนี้แล ้ว การ Encapsulate ยังต ้องการการกําหนด Network Address ของ

Router ที่ Datagram จะถูกส่งออกไปยัง NW ถัดไป (หรือ NW Address ของ Host ในกรณีที่ Datagram ไปถึงที่หมาย)

„

อย่าลืมว่า Router กําหนดแค่ IP Address ของ Next-Hop Router ไม่ได ้กําหนด Network Address ของ Next-Hop Router

„

เราจะใช ้ Protocol ชื่อ ARP มาทําการหา Network Address จาก IP Address ของ Next-Hop Router (Interface)

„

กรณีของ Ethernet Network, ARP จะใช ้ในการหา MAC Address จาก IP Address ที่

กําหนด รายละเอียดจะอยู่ในบทถัดไป

Ch22: 22.11 IP Encapsulation

LAN

IP Addr ต้นทางและปลายทาง

ห้ามเปลี่ยน แตะไม่ได้

192.168.7.1

192.168.7.0/24

FR

Next Hop

192.168.7.123

MAC Addr = ?

ATM

192.168.7.123

X.25

Ch22: 22.12 Transmission Across

An Internet

„

การส่ง Datagram

ใน Internet จะถูก

Encapsulate-

Decapsulate เป็น

ทอดๆ ตาม

Protocol ในแต่ละ

Network ที่ผ่าน

„

มีการกําหนด Code

ของ Payload ที่ส่วนหัว

ของแต่ละ Network

Protocol

„

มีการหา Network

Address ของ Router

ตัวถัดไป ที่ตรงกับ IP

Address โดยใช ้ ARP

Ch22: 22.13-14 MTU and Datagram

Fragmentation/Reassembly

„ ขนาดของ Data ที่จะใส่ใน Frame สูงสุดที่

สามารถส่งผ่านได้เรียก MTU: Maximum

Transfer Unit

„ แต่ละ Network จะกําหนดค่า MTU ต่างกัน

„ เป็นไปได ้ว่า Datagram ที่ส่ง อาจจะมีขนาดใหญ่กว่าค่า

MTU ของ NW นั้น

„ จะต ้องมีการแตก Datagram เป็นส่วนสั้นๆ เรียก Fragment เพื่อ

จะสามารถส่งผ่านไปได ้ ขบวนการนี้เรียก Fragmentation

Ch22: 22.13-14 MTU and Datagram

Fragmentation/Reassembly

„

ในแต่ละ Fragment ของ Datagram จะมี Format

เหมือน Datagram ปกติ ส่วน Header ของ

Fragment จะกําหนด IP ต้นทางและปลายทางเหมือน

Header เดิม ในส่วน Field ‘FLAG’ จะบ่งบอกว่านี้คือ

Fragment ไม่ใช่ IP Datagram เต็มๆ และส่วนใน

‘FRAGMENT OFFSET’ จะบ่งบอกว่า Fragment นี้อยู่

ที่ส่วนใหนของ Datagram เดิม

„

การประกอบคืน (Reassembly) กําหนดให ้กระทําที่ Host ปลายทาง

„

เพราะ Host ปลายทางสามารถรู ้ได ้ว่า Fragment ได ้ครบหรือไม่

„

ปกติ Router จะไม่สนใจว่า Datagram ที่ส่งเป็น Fragment หรือไม่

IP Header Flags

„ จากที่กล่าวมาแล้ว ส่วนของ Header จะ

ประกอบด้วย FLAG ขนาด 3 บิต ใช้ในกรณีที่

ทํา Fragment ด ังนี้

„ Bit 0: จะถูก Reserve และจะต ้องมีค่าเป็น 0

„ Bit 1: Don’t Fragment(DF) ถ ้ามีการ Set จะไม่มีการทํา

Fragment ที่ Datagram นี้

„ เมื่อ Datagram ต ้องผ่าน NW ที่กําหนดค่า MTU น ้อยกว่าขนาด

ของ Datagram จะส่งผ่านไม่ได ้ และจะต ้องโยนทิ้ง

„ Bit 2: More Fragment(MF) จะ Set ถ ้า Datagram นี้

เป็น Fragment ยกเว ้น Fragment สุดท ้าย

„ ถ ้าไม่มีการทํา Fragment ส่วน Bit 2 นี้จะไม่ถูก Set เช่นกัน ซ ึ่ง

มีความหมายเดียวกับเป็น Fragment สุดท ้าย

Ch22: 22.15 Collecting The

Datagram Fragments

„

IP จะไม่ Guarantee การส่งข้อมูล

„

Fragment อาจหาย มี Error หรือถูกส่งไปในทิศทางที่ต่างกัน และ

มาถึงปลายทางอย่างไม่เป็นลําดับ

„

เราจะรู้ได้อย่างไรว่า Fragment ของแต่ละ Datagram

ได้ร ับครบแล้ว พร้อมจะประกอบเป็น Datagram เดิม

คืนมา

„

Bit ในส่วนของ ‘FLAG’ Field จะบอกว่านี่เป็น Fragment ให ้รอ

Fragment อื่นจนครบ และประกอบเป็น Datagram เดิมก่อนที่จะส่ง

ให ้ Layer บนต่อไป

„

ปลายทางจะใช ้ส่วนของ IDENTIFICATION Field รวมกับ Source IP Address เป็นตัวกําหนดว่า Fragment ที่ได ้อยู่ใน Datagram เดิมอะไร โดยที่ Fragment ของ Datagram เดียวกันจะมีค่า

‘IDENTIFICATION’ เหมือนกัน ส่วน Source IP Address จะบ่ง

บอกอีกทีให ้แน่ใจ เพราะแต่ละผู ้ส่งอาจจะใช ้ Identification เหมือนกัน

„

ส่วนของ ‘FRAGMENT OFFSET’ Field จะบ่งบอกว่า Fragment นี้

อยู่ส่วนใหนของ Datagram เดิม

Ch22: 22.16 Fragment Loss

„

Fragment ต้องมาครบจึงจะประกอบได้ ด ังน ั้นถ้ามี

Fragment Loss ปลายทางจะต้องเก็บ Fragment ที่

เหลือไว้จนกว่าจะครบ ซึ่งจะเกิด Delay

„

การเก็บ Fragment จะใช้ Memory และไม่สามารถ

เก็บได้ตลอดไป มิฉะน ั้น Resource ของ Host

ปลายทางจะไม่เหลือให้ทําอย่างอื่น

„

IP กําหนด Timer ชื่อ ‘Reassembly Timer’ ซึ่งถ้า

Timer Expire(หมดอายุ) ทุกๆ Fragment ในชุดของ

Datagram น ั้นจะถูกโยนทิ้ง

„

IP ไม่มี Mechanism สําหรับ Fragment Retransmission เนื่องจาก

Fragment กระทําที่กลางทาง

„

ที่จริงจะกระทําไม่ได ้ เพราะผู ้ส่งไม่รู ้ว่า Fragment มันแบ่งอย่างไร ที่

ส่วนใหนของ Datagram เดิม

„

ดังนั้นถ ้า Fragment Loss จะทําให ้ Timer Expire และจะลงเอย

ด ้วยการส่งทั้ง Datagram นั้นมาใหม่ (All-or-Nothing)

Ch22: 22.17 Fragmenting A

Fragment

„ เป็นไปได้ที่ Router ต ัวหนึ่งทําการ Fragment

Datagram ส่งไปใน Internet และ

Fragment น ั้นต้องผ่าน Network ที่มีค่า MTU

ตํ่ากว่าขนาดของ Fragment

„ เราสามารถทํา Fragment ของ Fragment กี่ระดับก็ได ้

„ Router จะมองไม่ออกว่านี่เป็น Fragment ของ

Fragment

„ การประกอบจะกระทําครั้งเดียวที่ปลายทาง

„ ไม่มีการประกอบจาก Sub-fragment เป็น Fragment ก่อน แล ้ว

จึงค่อยประกอบ Datagram

IP Fragmentation

10.7.8.9/20

SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=000|OFFSET=0|L=2620

MTU 3000

NW

MTU 1000

1

1

MTU 1500

MTU 600

NW

NW

NW

MTU 1500

2

2

3

3

4

4

NW

5

SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=001|OFFSET=0|LEN=996

SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=001|OFFSET=122|LEN=996

SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=000|OFFSET=244|LEN=668

200.35.4.12/26

SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=001|OFFSET=0|LEN=596

Fragment

SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=001|OFFSET=72|LEN=420

Reassemble

SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=001|OFFSET=122|LEN=596

SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=001|OFFSET=194|LEN=420

SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=001|OFFSET=244|LEN=596

SIP:10.7.8.9|DIP:200.35.4.12|ID=AB12|F=000|OFFSET=316|LEN=92

End of Chapter 21-22

„ Homework II Due Next Week

„ Download HW2 (Week 4)

End of Week 4

„ Next, Week V: Chapter 23

„ Chapter 23: Supporting Protocol and

Technologies

„ ARP

„ ICMP

„ DHCP

„ NAT

previous page start